<?php
    //valida que venga los datos
    if(isset($_POST['nueva_categoria']) && isset($_POST['ACCION'])){
    $nueva_categoria = $_POST['nueva_categoria'];
    $descripcion_admin = $_POST['descripcion_admin'];
    $id_producto = $_POST['producto'];
    $accion = $_POST['ACCION'];
    $orden = $_POST['orden'];
    }else{
        exit();
    }
    
    
    
    require_once('../php/class/categorias.class.php');
    $oCategoria = new categoria();
    
    switch($accion){
        case "ADD":
        
			if($oCategoria->unique("DESCRIPCION_ADMIN","'".$descripcion_admin."'","DESCRIPCION","'".$nueva_categoria."'","ID_PRODUCTO",$id_producto)){
				$response = array("RESULT" => "1","ERROR" =>"Ya existe una categor&iacute;a con esa descripci&oacute;n");
                echo json_encode($response);
                exit();
				}
				
            $oCategoria->ID = $oCategoria->getlastid();
            $oCategoria->ID_PRODUCTO = $id_producto;
            $oCategoria->DESCRIPCION = $nueva_categoria;
            $oCategoria->DESCRIPCION_ADMIN = $descripcion_admin;
            $oCategoria->ORDEN = $orden;
            $oCategoria->ID_STATUS = 1; // active
            if(!@$oCategoria->add()){
                $response = array("RESULT" => "1","ERROR" =>"Error guardando categor&iacute;a");
                echo json_encode($response);
                exit();   
            }else{
                $response = array("RESULT" => "0","ERROR" =>"none");
                echo json_encode($response);
                exit(); 
            }
        break;
        
        case "MODIFY":
            $id_categoria = $_POST['id_categoria'];
            $nueva_categoria = $_POST['nueva_categoria'];
            $descripcion_admin = $_POST['descripcion_admin'];
            $id_producto = $_POST['producto'];
            $orden = $_POST['orden'];
            
            $oCategoria->search($id_categoria);
            
            if($oCategoria->ID_PRODUCTO != $id_producto || $oCategoria->DESCRIPCION_ADMIN != $descripcion_admin || $oCategoria->DESCRIPCION != $nueva_categoria){
            if($oCategoria->unique("DESCRIPCION_ADMIN","'".$descripcion_admin."'","DESCRIPCION","'".$nueva_categoria."'","ID_PRODUCTO",$id_producto)){
				$response = array("RESULT" => "1","ERROR" =>"Ya existe una categor&iacute;a con esa descripci&oacute;n");
                echo json_encode($response);
                exit();
				}
			}
				
            
            $oCategoria->ID_PRODUCTO = $id_producto;
            $oCategoria->DESCRIPCION = $nueva_categoria;
            $oCategoria->DESCRIPCION_ADMIN = $descripcion_admin;
            $oCategoria->ORDEN = $orden;
                if($oCategoria->modify()){
                    $response = array("RESULT" => "0","ERROR" =>"none");
                    echo json_encode($response);
                    exit();     
                }else{
                    $response = array("RESULT" => "1","ERROR" =>"Error modificando categor&iacute;a");
                    echo json_encode($response);
                    exit();
                }
        break;
        
        case "DELETE":
            $id_categoria = $_POST['id_categoria'];
            $oCategoria->search($id_categoria);
            $oCategoria->ID_STATUS = 0; //inactive
                
                if($oCategoria->modify()){
                    
                    //inactiva todas las subcategorias asociadas
						require_once('../php/class/subcategorias.class.php');
						$oSubcategoria = new subcategoria();
						
						if($oSubcategoria->inactive_all("ID_CATEGORIA",$id_categoria)){
							
							//inactiva todos los subniveles 1
							require_once('../php/class/subnivel1.class.php');
							$oSubNivel1 = new subnivel1();
							
							if($oSubNivel1->inactive_all("ID_CATEGORIA",$id_categoria)){
								
								//inactiva todos los subnivel2
								require_once('../php/class/subnivel2.class.php');
								$oSubNivel2 = new subnivel2();
								
								if($oSubNivel2->inactive_all("ID_CATEGORIA",$id_categoria)){
									
									$response = array("RESULT" => "0","ERROR" =>"none");
									echo json_encode($response);
									exit();
									
									}else{
										$response = array("RESULT" => "1","ERROR" =>"Error borrando subnivel2");
										echo json_encode($response);
										exit();		
										}
								
								}else{
								$response = array("RESULT" => "1","ERROR" =>"Error borrando subnivel1");
								echo json_encode($response);
								exit();		
								}
							
						}else{
							$response = array("RESULT" => "1","ERROR" =>"Error borrando subcategorias");
							echo json_encode($response);
							exit();	
							}     
                }else{
                    $response = array("RESULT" => "1","ERROR" =>"Error borrando categor&iacute;a");
                    echo json_encode($response);
                    exit();
                }
        break;
            
    }
     
?>
